package NGUYENVANDOAN.OOP.DEMO;

public class Student {
    //1. Biến toàn cục (Datafield)
    //Có thể triệu gọi biến này ở bất kỳ đâu trong lớp đối tượng hiện thời
    private int RollNo;
    private String FullName;
    private double Mark;
    
    /*
    void PrintInfo01(){
        RollNo = 100;
        String FullName = "Nguyễn Văn A"; //Biến cục bộ
    }
    
    int PrintInfo02(){
        RollNo = 200;        
        return 0;
    }*/
    
    //2. Hàm khởi dựng (Constructors)
    /* Đặc điểm của hàm khởi dựng 
     * + Trùng tên với tên lớp đối tượng.
     * + Ko có kiểu trả về.
     * + Mặc định phạm vi truy cập là Public
     * + Có 02 kiểu hàm khởi dựng:
     * - Có tham số
     * - Ko tham số
     * */
    
     //Ko tham số
     public Student(){
         //Sử dụng để khởi tạo giá trị mặc định cho đối tượng khi đc sinh ra
         RollNo = 0;
         FullName = "Example";
         Mark = 0.0;
     }
     
     Student(int rollNo, String FullName, double Mark){
         //Sử dụng để khởi dựng theo tham số cho đối tượng'
         //<Biến toàn cục> = <Tham số>;
         RollNo = rollNo;
         this.FullName = FullName;
         this.Mark = Mark;
     } 
     
     //3. Thuộc tính
     //Là phương thước sử dụng để thể hiện thông tin biến toàn cục 
     //thông qua Get hoặc Set
     //Get RollNo
     public int getRollNo(){
         return RollNo;
     }
     
     //Set RollNo
     public void setRollNo(int RollNo){
         this.RollNo = RollNo;
     }
     
     //Sử dụng chức năng sinh mã tự động cho các thuộc tính còn lại
     /**
      * @return the fullName
      */
     public String getFullName() {
         return FullName;
     }

     /**
      * @param fullName the fullName to set
      */
     public void setFullName(String fullName) {
         FullName = fullName;
     }

     /**
      * @return the mark
      */
     public double getMark() {
         return Mark;
     }

     /**
      * @param mark the mark to set
      */
     public void setMark(double mark) {
         Mark = mark;
     }
     
     //4. Phương thức thể hiện hành vi cho đối tượng
     public String DiHoc(){
         return "Chuyên gia hàng đầu đang đi học";
     }
     
     public int BayVoiTocDo(int info){
         return info;
     }     
}
